Typical software analysis tools provide the ability to independently analyze software code statically and dynamically. Static analysis can identify correctness issues in code without actually executing that code, through techniques such as data flow analysis, value tracking, and the like. Static analysis is limited, however, by the information that is available through static inspection of compiled binary code. Dynamic analysis can provide information pertaining to timing and how much memory is allocated, for example. Software developers often independently perform static analysis and dynamic analysis, during the software development process, attempting to apply results of one type of analysis to the other.